Skip to content

Set up nodectl end-to-end network test in CI#75

Merged
Keshoid merged 13 commits intorelease/nodectl/v0.4.0from
feature/sma-59-set-up-nodectl-end-to-end-network-test-in-ci
Apr 10, 2026
Merged

Set up nodectl end-to-end network test in CI#75
Keshoid merged 13 commits intorelease/nodectl/v0.4.0from
feature/sma-59-set-up-nodectl-end-to-end-network-test-in-ci

Conversation

@Keshoid
Copy link
Copy Markdown
Contributor

@Keshoid Keshoid commented Apr 9, 2026

Summary

  • Add nodectl-e2e GitHub Actions workflow that boots a local 6-node TON network and runs nodectl against it end-to-end. Triggers on PR approval for release/nodectl/*, on run-e2e label, or via manual dispatch.
  • Replace the bash-based singlehost script with a structured Python script (run_singlehost_nodectl.py) covering 11 phases: build, configure, bootstrap network, configure wallets/pools/nodes, start nodectl service, wait for election participants, and validate via REST API.
  • Add test_nodectl_ci.sh thin CI wrapper with CI-appropriate timeouts and settings.
  • Add Makefile targets (test-e2e, singlehost-venv, stop-e2e) for running the e2e test locally.
  • Update main CI workflow to ignore markdown and docs changes.

Copilot AI review requested due to automatic review settings April 9, 2026 09:04
@linear
Copy link
Copy Markdown

linear bot commented Apr 9, 2026

@Keshoid Keshoid requested review from ITBear, Lapo4kaKek and mrnkslv and removed request for Copilot April 9, 2026 09:04
Keshoid added 2 commits April 9, 2026 12:06
…n-ci' of github.com:RSquad/ton-rust-node into feature/sma-59-set-up-nodectl-end-to-end-network-test-in-ci
Copilot AI review requested due to automatic review settings April 9, 2026 09:07
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR sets up end-to-end network testing infrastructure for nodectl in CI by converting a bash bootstrap script to Python, adding support for shared control-client keys in test networks, and implementing a new GitHub Actions workflow for automated testing.

Changes:

  • Migrated the singlehost bootstrap script from bash to Python with enhanced logging and structured phases
  • Added --control-client-public-key argument to test_run_net.py to pre-inject control-client keys into node configs
  • Implemented --password-stdin flag in auth command to support non-interactive password input for CI environments
  • Created GitHub Actions workflow for nodectl e2e testing with proper trigger conditions and artifact upload on failure
  • Added Makefile targets for local singlehost integration testing

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/node/tests/test_run_net_py/test_run_net.py Added control-client key injection function and CLI argument
src/node/tests/test_run_net_py/run_singlehost_nodectl.py New Python bootstrap script with 11 phases for complete setup and testing
src/node/tests/test_run_net_py/test_nodectl_ci.sh New CI wrapper that calls Python script with appropriate environment variables
src/node/tests/test_run_net_py/requirements.txt New file specifying pyyaml dependency
src/node-control/Makefile Added singlehost integration test targets
src/node-control/commands/src/commands/nodectl/auth_cmd.rs Added --password-stdin flag for non-interactive password input
.github/workflows/nodectl-e2e.yml New GitHub Actions workflow for e2e testing
.github/workflows/ci.yml Added paths-ignore configuration for markdown/docs files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Keshoid Keshoid changed the title Set up nodectl e2e network test in ci Set up nodectl end-to-end network test in CI Apr 9, 2026
@Keshoid Keshoid added run-e2e and removed run-e2e labels Apr 9, 2026
@Keshoid Keshoid added run-e2e and removed run-e2e labels Apr 9, 2026

for addr in pool_addrs:
self.log.info(f" Top up pool {addr} ({self.cfg.pool_topup} TON)")
self._bun_topup(addr, self.cfg.pool_topup)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

important to check or edit when core np will be added: will it work normally with ton core np? Nominator pool can have enough funds to stake, but if validator didn't send deposit message with suitable amount it would be impossible to stake

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will adapt the script later.

@Keshoid Keshoid merged commit 75a4c40 into release/nodectl/v0.4.0 Apr 10, 2026
6 checks passed
@Keshoid Keshoid deleted the feature/sma-59-set-up-nodectl-end-to-end-network-test-in-ci branch April 10, 2026 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants